import { defineStore } from 'pinia'
import { isEmpty } from '../util/common';
import { update } from '../db';

// 你可以任意命名 `defineStore()` 的返回值，但最好使用 store 的名字，同时以 `use` 开头且以 `Store` 结尾。
// (比如 `useUserStore`，`useCartStore`，`useProductStore`)
// 第一个参数是你的应用中 Store 的唯一 ID。
export const useSessionListStore = defineStore('sessionList', {
    state: () => ({sessionList: []}),
    getters: {
      getSessionList: (state) => state.sessionList
    },
    actions: {
      setSessionList(newList){
        if(!isEmpty(newList)){
            this.sessionList = newList;
        }else {
            this.user = {};
        }
      },
      addSession(session){
        if(!isEmpty(session)){
            this.sessionList.push(session);
        }
      },
      removeSession(session){
        if(!isEmpty(session)){
            this.sessionList = this.sessionList.filter(item => item.id !== session.id);
        }
      },
      updateSession(e){
        if(!isEmpty(e)){
            const chatSession = this.sessionList.find(item => item.sessionId === e.sessionId);
            if(!isEmpty(chatSession)){
                chatSession.lastMessage = e.lastMessage;
                chatSession.lastReceiveTime = e.sendTime
            }
        }
      },
      clearSessionList(){
        this.sessionList = [];
      }

    }
})